#！/bin/bash
#################################################################
# @Description: 用例名称：操作系统支持GM/T 0002，测试目的：操作系统支持GM/T 0002规定的密码算法运算
# @Date : 2023-11-22
# @Last Modified by :
# @Last Modified time:2023-11-25
#################################################################
set -euo pipefail
res=0
echo "1.创建待加密文件encrypt_file"
echo "1234abc" >encrypt_file
echo "2.使用SM4算法加密"
openssl enc -SM4 -in encrypt_file -K f12aaaaaa888888888888888888888aa -iv f12aaaaaa888888888888888888888aa -out encryped_file.sm4 || res=1
echo "3.使用SM4算法解密encryped_file.sm4文件"
openssl enc -d -SM4 -in encryped_file.sm4 -K f12aaaaaa888888888888888888888aa -iv f12aaaaaa888888888888888888888aa -out decrypt_file || res=1
echo "4.比较解密后的文件和加密前的文件，预期二者一致"
diff decrypt_file encrypt_file || res=1
echo "5.使用错误的key去解密文件，预期解密失败"
openssl enc -d -SM4 -in encryped_file.sm4 -K f12aaaaaa888888888888888888888ab -iv f12aaaaaa888888888888888888888ab -out decrypt_file  && res=1

echo "判断用例是否执行成功"
[ "$res" = "0" ] && echo -e "\033[32m-----------------test PASSED----------------\033[0m" || echo -e "\033[31m-----------------test FAILD----------------\033[0m"
echo "测试完成，开始环境清理"
rm -f decrypt_file encryped_file.sm4 encrypt_file
